package cn.edu.nuaa.codemetric.components;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.io.File;

@Component
public class MetricClean {
    //TODO 在此处修改定时清理代码度量临时文件时间，单位ms
    @Scheduled(fixedRate = 86400000)
    public void clean(){
        String dir="./metric/";
        File directory=new File(dir);

        if(directory.exists() && directory.isDirectory()){
            File[] files=directory.listFiles();
            if(files!=null){
                for (File f:files){//遍历数字文件夹
                    if (f.isDirectory()){
                        boolean lock=false;
                        //检查是否加锁
                        File[] subFiles=f.listFiles();
                        if(subFiles!=null){
                            for (File a:subFiles){
                                if (a.getName().equals(".lock")){
                                    lock=true;
                                    break;
                                }
                            }
                        }
                        if(!lock){//没锁定就删除
                            File[] files1=f.listFiles();
                            if(files1!=null){
                                for (File a:subFiles){
                                    a.delete();
                                }
                            }
                            f.delete();
                        }
                    }
                }
            }

        }
    }
}
